﻿using System;
using System.Collections;
using System.Linq;
using System.Text;

namespace CapaNegocio
{
    class Mapeo
    {
        #region Premio

        //objeto a tabla - guardar (SOLO PARA CUANDO ALMACENO UNO NUEVO)
        public static ArrayList DarPremio_Relacional(Premio p)
        {
            ArrayList datos = new ArrayList();
            datos.Add(p.Descripcion);
            datos.Add(p.PuntosNecesarios);
            datos.Add(p.Stock);
            return datos;
        }

        //para cuando es modificado y debo volver a guardarlo.
        public static ArrayList DarPremio_Relacional2(Premio p)
        {
            ArrayList datos = new ArrayList();
            datos.Add(p.NroPremio);
            datos.Add(p.Descripcion);
            datos.Add(p.PuntosNecesarios);
            datos.Add(p.Stock);
            return datos;
        }

        //tabla a objeto - recuperar
        public static Premio DarPremio_Objeto(ArrayList datos) //de tabla a object
        {
            Premio p = new Premio(int.Parse(datos[0].ToString()), datos[1].ToString(), int.Parse(datos[2].ToString()), int.Parse(datos[3].ToString()));
            return p;
        }

        

        #endregion

        #region Producto

        //objeto a tabla - guardar (SOLO PARA CUANDO ALMACENO UNO NUEVO)
        public static ArrayList DarProducto_Relacional(Producto p)
        {
            ArrayList datos = new ArrayList();
            datos.Add(p.Descripcion);
            datos.Add(p.Precio);
            datos.Add(p.Stock);

            return datos;
        }

        #endregion
        //de objeto a relacional
        public static Cliente DarCliente_Objeto(ArrayList datos) //de tabla a object
        {
            Cliente cliente;
            if(datos[7].Equals("especial"))
             cliente = new ClienteEspecial(int.Parse(datos[4].ToString()),int.Parse(datos[0].ToString()), datos[1].ToString(), DateTime.Parse(datos[2].ToString()), datos[3].ToString(), int.Parse(datos[6].ToString()),int.Parse(datos[5].ToString()));
            else
                cliente = new ClienteComun(int.Parse(datos[4].ToString()), int.Parse(datos[0].ToString()), datos[1].ToString(), DateTime.Parse(datos[2].ToString()), datos[3].ToString(), int.Parse(datos[6].ToString()),int.Parse(datos[5].ToString()));

            return cliente;
        }
        
             
        
    }
}
